1. Technical Field
The present invention relates in general to the field of computers and computer systems. More particularly, the present invention relates to a computer system adapted to deploy an application program. Also, the present invention relates to a method of deploying an application program in a computer system.
2. Description of the Related Art
In general, an application program is developed on a development computer system, and is then deployed on a host computer system where it will be run (executed). The deployment process turns the application into its final executable form. Typically, this deployment includes the creation of links between the application and any libraries upon which the application relies. However, unintended dependencies may arise between the application program and the libraries, and these dependencies may cause difficulties and unexpected behaviour in the host computer system.
FIG. 1 is a schematic overview of an example computer network of the related art. Here, an application 1 is developed on a development system 4 and is then deployed on one or more host computer systems 2, using a deployment mechanism 3. The application 1 then runs on the host computer system 2 and, in this example, serves one or more individual end-user clients 5, either over a local network or via intermediaries such as a web server 6. The application 1 often will also communicate with various other back-end computers such as a set of database servers 7. FIG. 1 is only an illustrative example and many other specific network configurations will be apparent to those skilled in the art.
Application programs are often developed using object-oriented programming languages, such as the popular Java language developed by SUN MICROSYSTEMS. More recently, Java 2 Standard Edition (J2SE) and Java 2 Enterprise Edition (JEE or J2EE) have been developed to support a very broad range of applications from the smallest portable applets through to large-scale multilayer server applications such as complex controls for processes, manufacturing, production, logistics, and other commercial applications. Java relies upon a virtual machine which converts universal Java bytecode into binary instructions in the instruction set of the host computer system. Increasingly, applications are developed with the assistance of middleware such as the Spring framework (see www.springframework.org) and are released as a collection of OSGi bundles (see www.osgi.org). The Java virtual machine includes a comprehensive set of standard class libraries which are then used by many different application programs. These libraries provide a well-known set of functions to perform common tasks, such as maintaining lists of items or performing complex string parsing. Also, the class libraries provide interfaces to tasks that would normally depend heavily on the hardware and operating system of the host machine, such as access to files and networking. Thus, libraries are vital to most modern application programs. It is desired that the host computer system should implement libraries and applications in a manner which is both stable and reliable. In particular, it is desired to avoid unintended dependencies between the libraries and the application programs.